package com.rem.hutool.my9Img;

import cn.hutool.core.img.Img;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;

import java.awt.*;

/**
 * @Author Rem
 * @Date 2020-08-30
 */

public class ImgUtilDemo {

    public static void main(String[] args) {

        //scale();

        //cut();

        // slice();

        //convert();

        //pressText();

        //针对awt中图片处理进行封装，这些封装包括：缩放、裁剪、转为黑白、加水印等操作。
        //imgCut();

        //imgCompress();


    }

    //压缩
    private static void imgCompress() {
        Img.from(FileUtil.file("e:/pic/1111.png"))
                .setQuality(0.8)//压缩比率
                .write(FileUtil.file("e:/pic/1111_target.jpg"));
    }

    //裁剪

    private static void imgCut() {
        Img.from(FileUtil.file("e:/pic/face.jpg"))
                .cut(0, 0, 200)//
                .write(FileUtil.file("e:/pic/face_radis.png"));
    }

    //添加文字水印
    private static void pressText() {
        ImgUtil.pressText(//
                FileUtil.file("../../src/main/resources/img/timg.jpg"), //
                FileUtil.file("../../src/main/resources/img/timgTarget4.jpg"), //
                "版权所有", Color.WHITE, //文字
                new Font("黑体", Font.BOLD, 100), //字体
                0, //x坐标修正值。 默认在中间，偏移量相对于中间偏移
                0, //y坐标修正值。 默认在中间，偏移量相对于中间偏移
                0.8f//透明度：alpha 必须是范围 [0.0, 1.0] 之内（包含边界值）的一个浮点数字
        );
    }

    private static void convert() {
        ImgUtil.convert(FileUtil.file("../../src/main/resources/img/timg.jpg"),
                FileUtil.file("../../src/main/resources/img/timgTarget3.png"));
    }

    //按照行列剪裁切片（将图片分为20行和20列）
    private static void slice() {
        ImgUtil.slice(
                FileUtil.file("../../src/main/resources/img/timg.jpg"),
                FileUtil.file("../../src/main/resources/img/"),
                10,
                10);
    }

    //裁剪的矩形区域
    private static void cut() {
        ImgUtil.cut(
                FileUtil.file("../../src/main/resources/img/timg.jpg"),
                FileUtil.file("../../src/main/resources/img/timgTarget2.jpg"),
                new Rectangle(200, 200, 100, 100)
        );
    }


    //图片缩放 0.5倍
    private static void scale() {
        ImgUtil.scale(
                FileUtil.file("../../src/main/resources/img/timg.jpg"),
                FileUtil.file("../../src/main/resources/img/timgTarget.jpg"),
                0.5f
        );
    }
}
